﻿
namespace DKE_Kinect.Entwicklung.Core
{
	/// <summary>
	/// Repräsentiert ein Wertepaar.
	/// </summary>
	/// <typeparam name="T">Typ des ersten Tupels.</typeparam>
	/// <typeparam name="U">Typ des zweiten Tupels.</typeparam>
	internal class Pair<T, U>
	{
		private T pFirst;
		private U pSecond;

		/// <summary>
		/// Instanziiert ein neues Objekt dieser Klasse.
		/// </summary>
		internal Pair ()
		{
			this.pFirst = default(T);
			this.pSecond = default(U);
		}
		/// <summary>
		/// Instanziiert ein neues Objekt dieser Klasse.
		/// </summary>
		/// <param name="First">Erster Wert.</param>
		/// <param name="Second">Zweiter Wert.</param>
		internal Pair (T First, U Second)
		{
			this.pFirst = First;
			this.pSecond = Second;
		}

		/// <summary>
		/// Gibt den ersten Wert an oder legt diesen fest.
		/// </summary>
		internal T First
		{
			get { return this.pFirst; }
			set { this.pFirst = value; }
		}
		/// <summary>
		/// Gibt den zweiten Wert an oder legt diesen fest.
		/// </summary>
		internal U Second
		{
			get { return this.pSecond; }
			set { this.pSecond = value; }
		}
	}
}
